package Sokoban;
import java.awt.Image;


public class MovingImage {

    //protected Animation anim;
    // pozycja (piksele)
    private float x=0;
    private float y=0;
    
    Image img;
    // pr�dko�� (piksele na milisekund�)
    //private float dx;
    //private float dy;
    public MovingImage(Image img) {
    	
    	this.img=img;
    	
    }
    
    public MovingImage(MovingImage another) {
    	
    	this.img=another.img;
    	
    }
    /**
        Tworzy nowy obiekt Sprite z w�a�ciwym obiektem Animation.
    */
    

    /**
        Aktualizuje obiekt Animation dla bie��cego Sprite oraz swoja pozycj�
        na podstawie pr�dko�ci.
    */
    /*public void update(long elapsedTime) {
        x += dx * elapsedTime;
        y += dy * elapsedTime;
        anim.update(elapsedTime);
    }*/

    /**
        Zwraca wsp�rz�dn� x bie��cego obiektu Sprite
    */
    public Image getMovingImage() {
        
            return img;
       
    }
    public float getX() {
        return x;
    }

    /**
        Zwraca wsp�rz�dn� x bie��cego obiektu Sprite
    */
    public float getY() {
        return y;
    }

    /**
        Ustawia wsp�rz�dn� x bie��cego obiektu Sprite.
    */
    public void setX(float x) {
        this.x = x;
    }

    /**
        Ustawia wsp�rz�dn� y bie��cego obiektu Sprite.
    */
    public void setY(float y) {
        this.y = y;
    }
    
    public boolean isTopCollision(MovingImage actor) {
        if (((this.y - 1) == actor.y) &&
            (this.x == actor.x)) {
            return true;
        } else {
            return false;
        }
    }
    
    public boolean isBottomCollision(MovingImage actor) {
        if (((this.y + 1) == actor.y) &&
            (this.x == actor.x)) {
            return true;
        } else {
            return false;
        }
    }
    
    public boolean isRightCollision(MovingImage actor) {
        if (((this.x +1) == actor.x) &&
            (this.y == actor.y)) {
            return true;
        } else {
            return false;
        }
    }
    
    public boolean isLeftCollision(MovingImage actor) {
        if (((this.x - 1) == actor.x) &&
            (this.y == actor.y)) {
            return true;
        } else {
            return false;
        }
    }
    
}

    /**
        Zwraca szeroko�� bie��cego obiektu Sprite, korzystaj�c z rozmiaru
        bie��cego rysunku.
    */
    /*
    public int getWidth() {
        return anim.getImage().getWidth(null);
    }

    /**
        Zwraca wysoko�� bie��cego obiektu Sprite, korzystaj�c z rozmiaru
        bie��cego rysunku.
    
    public int getHeight() {
        return anim.getImage().getHeight(null);
    }

    /**
        Zwraca pr�dko�� w poziomie bie��cego obiektu Sprite w pikselach
        na milisekund�.
    
    public float getVelocityX() {
        return dx;
    }

    /**
        Zwraca pr�dko�� w pionie bie��cego obiektu Sprite w pikselach
        na milisekund�.
    
    public float getVelocityY() {
        return dy;
    }

    /**
        Ustawia pr�dko�� w poziomie bie��cego obiektu Sprite w pikselach
        na milisekund�.
    
    public void setVelocityX(float dx) {
        this.dx = dx;
    }

    /**
        Ustawia pr�dko�� w pionie bie��cego obiektu Sprite w pikselach
        na milisekund�.
    
    public void setVelocityY(float dy) {
        this.dy = dy;
    }

    /**
        Zwraca bie��cy rysunek dla tego obiektu Sprite.
    
    public Image getImage() {
        return anim.getImage();
    }

    /**
        Powiela bie��cy obiekt Sprite. Nie powiela po�o�enia i pr�dko�ci.
    
    public Object clone() {
        return new Sprite(anim);
    }
}*/
